#include <stdlib.h>
#include <stdio.h>
int main()
{
    int n, i, j, k;
    int **w = NULL;
    scanf("%d", &n);
    //给w分配内存空间,存储n个int型指针
    w = (int**)calloc(n, sizeof(int*));

    //给w的每个int型指针分配内存空间,存储n个int型数据
    for (i = 0; i < n; i++)
        *(w + i) = (int*)calloc(n, sizeof(int));
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            scanf("%d", &w[i][j]);
    }
    // for (i = 0; i < n; i++)
    // {
    //     for (j = 0; j < n; j++)
    //         printf("%d ", w[i][j]);
    //     printf("\n");
    // }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            if (1 == w[j][i])
            {
                for (k = 0; k < n; k++)
                {
                    w[j][k] = w[j][k] || w[i][k];
                }
            }
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            printf("%d ", w[i][j]);
        printf("\n");
    }   
    return 0;
}